package com.wm.yigongfang.common.web;

/**
 * @author zhangPeng
 * @description
 * @date 2021/4/20 11:08
 */
public enum  ResultCode {
  /**
   * 成功 [GET]
   */
  SUCCESS(200),
  /**
   *  [POST/PUT/PATCH] 用户新建或修改数据成功
   */
  CREATED(201),
  /**
   *  [*] 标识一个请求已经进入后台排队 (异步任务)
   */
  ACCEPTED(202),
  /**
   *  [DELETE]: 用户删除数据成功
   */
  NO_CONTENT(204),
  /**
   *  [POST/PUT/PATCH] 用户发出的请求有错误, 服务器没有进行新建或修改数据的操作, 该操作是幂等的.
   */
  FAIL(400),
  /**
   *  [*] 标识没有权限 (令牌、用户名、密码错误)
   */
  UNAUTHORIZED(401),
  /**
   *  [*] 标识用户得到授权(与401错误相对), 但是访问是被禁止的
   */
  FORBIDDEN(403),
  /**
   * [*] 用户发出的请求针对的是不存在的记录, 服务器没有进行操作
   */
  NOT_FOUND(404),
  /**
   *  [GET] 用户请求的格式不可得 (比如用户请求JSON格式, 但是只有XML格式)
   */
  NOT_ACCEPTABLE(406),
  /**
   *  [GET] 用户请求的资源被永久删除, 且不会再得到
   */
  GONE(410),
  /**
   *  [POST/PUT/PATCH] 当创建一个对象时, 发生一个验证错误646
   */
  UNPROCESSABLE_ENTITY(422),
  /**
   * 服务器内部错误
   */
  INTERNAL_SERVER_ERROR(500),

  /**
   * 系统异常
   */
  SYSTEM_EXCEPTION(9999),
  /**
   * 服务异常
   */
  SERVICE_EXCEPTION(9998),



  /**
   * ####业务的响应码####
   * 按业务依次划分 :
   * 一共6位, 第6位是业务代码 第1-5位响应码, 按业务不同码不同
   * #100000 全局级别
   */

  /**
   *  100001  当前用户被强制下线
   */
  CUSTOM_100001(100001);


  public final int code;

  ResultCode(int code) {
    this.code = code;
  }
}
